﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.ComponentModel;


namespace FXnaGis
{
    [Serializable]
    public abstract class FComposeShape:FShape
    {

        public FComposeShape(string id):base(id)
        {

            
 
        }



        protected FShape _innerShape;

        [TypeConverter(typeof(ExpandableObjectConverter))]
        public virtual FShape InnerShape
        {
            get { return _innerShape; }
            set { _innerShape = value; }
        }



        [Browsable(false)]
        public override FVectorLayer Parent
        {
            get
            {
                return this._innerShape.Parent;

            }
            set
            {


                this._innerShape.Parent = value;

            }
        }



        public override DotSpatial.Data.Extent Extent
        {
            get
            {
                return this._innerShape.Extent;
            }
        }


        public override string Desc
        {
            get
            {
                return this._innerShape.Desc;
            }
            set
            {
                this._innerShape.Desc = value;
            }
        }

        public override void Move(double xOffset, double yOffset, double zOffset)
        {
            this._innerShape.Move(xOffset, yOffset, zOffset);
        }


        public override void Draw(FXnaGis.FMapArgs args)
        {
            this._innerShape.Draw(args);
        }

        public override void DrawLable(FMapArgs args)
        {
            this._innerShape.DrawLable(args);
        }


        public override bool Intersects(DotSpatial.Topology.Envelope envelope)
        {
           return  this._innerShape.Intersects(envelope);

        }

    }
}
